home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / Tools / glimpsehttp / wwwlib / getfile < prev    next >
Encoding:
Text File  |  1995-05-16  |  2.2 KB  |  90 lines

  1. #!/usr/local/bin/perl
  2.  
  3. $gunzip="/usr/local/bin/gunzip";
  4.  
  5. print "Content-type: text/html\n\n";
  6.  
  7. undef $line;
  8. if ($ENV{'QUERY_STRING'} =~ /\d+/) {
  9.     $line = $ENV{'QUERY_STRING'};
  10. }
  11. $check = $ARGV[0];
  12. $path = $ENV{'PATH_INFO'};
  13. if ($check) {
  14.     if ($path =~ m#^$check/(.*)#) {
  15.     # you may uncomment this if you want to increase security
  16.     # at the expense of longer execution
  17.     #if (system("egrep $1\$ $check/.glimpse_filenames >/dev/null".
  18.     #    " 2>/dev/null") != 0) {
  19.     #    &err_noaccess;
  20.     #}
  21.     # else - ok, you get to see us mangle the file then
  22.     }
  23.     else {
  24.     &err_noaccess;
  25.     }
  26. }
  27. $effname = $path;
  28. $name = $path;
  29. if ($path =~ /^(.*)\.Z$/) {
  30.     $effname = "exec $gunzip < $path|";
  31.     $name = $1;
  32. } elsif ($path =~ /^(.*)\.gz$/) {
  33.     $effname = "exec $gunzip < $path|";
  34.     $name = $1;
  35. } elsif ($path =~ /^(.*)\.zip$/) {
  36.     $effname = "exec $gunzip < $path|";
  37.     $name = $1;
  38. }
  39.  
  40. if (!-f $path) {
  41.         print "<TITLE>File \"$path\" does not exist</TITLE>\n";
  42.         print "<H1>File \"$path\" does not exist</H1>\n";
  43.         exit;
  44. }
  45. if (!open(INPUT,$effname)) {
  46.         print "<TITLE>Cannot read file \"$path\"</TITLE>\n";
  47.         print "<H1>Cannot read file \"$path\": $!</H1>\n";
  48.         exit;
  49. }
  50.  
  51. if ($name !~ /.html$/) {
  52.     print "<PRE>\n";
  53. }
  54. LINE:
  55. while (<INPUT>) {
  56.     if ($name =~ /\.html$/) {
  57.         s|\<([\w\$][-\w.\$]*@\w[-\w.]+)>|\<a href="/cgi-bin/artbyid?$1"\>\<$1\>\</a\>|g;
  58.     } else {
  59.         s|\&|\&|g;
  60.         s|\<|\<|g;
  61.         s|\>|\>|g;
  62.         s|\<([\w\$][-\w.\$]*@\w[-\w.]+)>|\<a href="/cgi-bin/artbyid?$1"\>\<$1\>\</a\>|g;
  63.         # s|\bgopher://([^ ><'")(]*[\w\/])\b|\<a href="$&">$&\</a>|g;
  64.         # s|\bhttp://[-.\w?/+&\%:]+[.\w/]\b|\<a href="$&">$&\</a>|g;
  65.         # s|\bftp://[-.\w/+]+[.\w/]\b|\<a href="$&"\>$&\</a\>|g;
  66.         s#\bgopher://[^\s><'")(]+[\w/]#\<a href="$&">$&\</a>#g;
  67.         s#\bhttp://[^\s><'")(]+[\w/]#\<a href="$&">$&\</a>#g;
  68.         s#\bftp://[^\s><'")(]+[\w/]#\<a href="$&">$&\</a>#g;
  69.     }
  70.     if ($line && $. == $line) {
  71.         print "<A NAME=\"mfs\"><B>";
  72.     }
  73.     if ($line && $. == $line+1) {
  74.         print " </B></A>";
  75.     }
  76.     print;
  77. }
  78. if ($name !~ /.html$/) {
  79.     print "</PRE>\n";
  80. }
  81. close(INPUT);
  82.  
  83. sub err_noaccess {
  84.     print "<TITLE>Access denied</TITLE>\n";
  85.     print "<H1>Access to \"$path\" denied</H1>\n";
  86.     print "You don't have permission to get file \"$path\"\n";
  87.     print "from this site.\n";
  88.     exit;
  89. }
  90.